object IntegerProcessor {
  def addOne(numbers: List[Int]): List[Int] = numbers.map(_ + 1)

  def filterEven(numbers: List[Int]): List[Int] = numbers.filter(_ % 2 == 0)

  def mapReduce(numbers: List[Int], mapFn: Int => Int, reduceFn: (Int, Int) => Int): Int = {
    numbers.map(mapFn).reduce(reduceFn)
  }
}

object Main {
  def main(args: Array[String]): Unit = {
    val numbers = List(1, 2, 3, 4, 5)

    // 使用 addOne 函数将列表中的每个整数加 1
    val incrementedNumbers = IntegerProcessor.addOne(numbers)
    println(incrementedNumbers) // 输出: List(2, 3, 4, 5, 6)

    // 使用 filterEven 函数返回所有偶数的列表
    val evenNumbers = IntegerProcessor.filterEven(numbers)
    println(evenNumbers) // 输出: List(2, 4)

    // 使用 mapReduce 函数将列表中的所有元素加倍并将结果相加
    val doubledSum = IntegerProcessor.mapReduce(numbers, _ * 2, _ + _)
    println(doubledSum) // 输出: 30
  }
}
